/***************************************************************************************************
  *Copyright(C),2010-2016,Sumscope
  *FileName	:  system_util.cpp
  *Author	:  scofined.qi
  *Version	:  1.0
  *Date		:  2015/12/22
  *Desc		:  //用于主要说明此程序文件完成的主要功能
  *Relation :  
  *Others	:  //其他内容说明
  *Function :  //主要函数列表，每条记录应包含函数名及功能简要说明
  *History	:  //修改历史记录列表，每条修改记录应包含修改日期、修改者及修改内容简介
***************************************************************************************************/
#include "system_util.h"
#include <QDir>

namespace qb{
namespace base{
namespace os{

	BaseString tostr( int number )
	{
		BaseString str;
		while(number>0)
		{
			char c = '0'+ (number%10);
			str.insert(0,&c,1);
			number=number/10;
		}
		return str;
	}

	BaseString fmtstr(const char* format,...)
	{
		const size_t tsize = 1024;
		char buffer[tsize] = {0};
		memset(buffer,0,tsize);
		va_list args;
		int ret;  
		va_start (args, format);
		char* ptr = buffer;
		int  maxcount = tsize;
		#if WIN32
		ret = vsprintf_s(ptr,maxcount, format, args);
		#else
		ret = vsnprintf(ptr, maxcount,format, args);
		#endif
		va_end (args);
		return buffer;
	}
	WideString fmtstr(const wchar_t* format, ...)
	{
		const size_t tsize = 1024;
		wchar_t buffer[tsize] = {0};
		memset(buffer, 0, tsize);
		va_list args;
		int ret;
		va_start(args, format);
		wchar_t* ptr = buffer;
		int  maxcount = tsize;
		#if WIN32
		ret = vswprintf_s(ptr, maxcount, format, args);
		#else
		ret = vswprintf(ptr, maxcount, format, args);
		#endif
		va_end(args);
		return buffer;
	}

	bool MakePathExist(const char* szPath)
	{
        QDir dir;
        return dir.mkpath(szPath);
	}

	bool DeleteFolder( const char* lpszPath )
	{
		return QFile::remove(QString::fromUtf8(lpszPath));
	}

}//namespace os
}//namespace base;
}//namespace qb;
